package com.common.pojo;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.entity.UserTable;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @description: 用户登录实体
 * @author: GuoTong
 * @createTime: 2021-06-28 15:18
 * @since JDK 1.8 OR 11
 **/
@Data
@Accessors(chain = true)
public class LoginUser {
    String Id;
    String username;
    String password;

    /**
    * Description: Algorithm.HMAC256():使用HS256生成token,密钥则是用户的密码，唯一密钥的话可以保存在服务端。
     * withAudience()存入需要保存在token的信息，这里我把用户getEmail存入token中
    * @author: GuoTong
    * @date: 2021-06-28 15:19:59
    * @param:
    * @return:
    */
    public String getToken(UserTable user) {
        String token = "";
        token = JWT.create().withAudience(user.getEmail())
                .sign(Algorithm.HMAC256(user.getAddress()));
        return token;
    }

}
